home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_11 / 9n11073a < prev    next >
Text File  |  1991-08-27  |  1KB  |  28 lines

  1. Listing 5:
  2.  
  3.  
  4. #       compiled using hc29 -O -S fib.c
  5. _fib:
  6.         sub             gr1,gr1,16          # bring down register stack pointer
  7.         asgeu           V_SPILL,gr1,gr126   # test for spill
  8.         cpgt            gr96,lr6,2          # determine if n<2
  9.         jmpt            gr96,L00043
  10.         add             lr1,gr1,28          # stack support operation
  11.         add             gr1,gr1,16          # repair register stack for return
  12.         const           gr96,1  ; (0x1)       # return value 1 when n<=2
  13.         jmpi            lr0                 # return
  14.         asleu           V_FILL,lr1,gr127    # test for fill
  15. L00043:
  16.         call            lr0,_fib
  17.         sub             lr2,lr6,1           # place n-1 in lr2
  18.         add             lr3,gr96,0          # hold fib(n-1) in local
  19.         call            lr0,_fib
  20.         sub             lr2,lr6,2           # place n-2 in lr2
  21.         add             gr96,gr96,lr3       # add fib(n-2) and fib(n-1)
  22.         add             gr1,gr1,16          # repair register stack for return
  23.         nop                         # wait 1-cycle for gr1 update
  24.         jmpi            lr0                 # return
  25.         asleu           V_FILL,lr1,gr127    # test for fill
  26.  
  27.  
  28.